{{tag>Precise Trusty console pare-feu réseau sécurité}}

----

====== Uncomplicated Firewall ======

//Le pare-feu tout simplement//

UFW est un nouvel outil de configuration simplifié en [[:console|ligne de commande]] de [[wpfr>Netfilter]], qui donne une alternative à l'outil [[:iptables]]. UFW devrait à terme permettre une configuration automatique du pare-feu lors de l'installation de programmes en ayant besoin. 

<note tip>Si vous désirez activer et configurer votre pare-feu sur un ordinateur profitant d'un environnement de bureau, sachez qu'il existe une interface graphique pour UFW : [[:Gufw]].

Il existe également une interface spécialement adapté pour KDE (Kubuntu) depuis Trusty (14.04) : [[:tutoriel:comment_installer_un_paquet|installer le paquet]] [[apt>ufw-kde|ufw-kde]]. Pour les versions antérieurs, voir éventuellement [[https://projects.kde.org/projects/playground/sysadmin/ufw-kde|ici]].</note>


===== Installation =====

Uncomplicated Firewall est pré-installé sous Ubuntu, mais si besoin vous devez simplement [[:tutoriel:comment_installer_un_paquet|installer le paquet]] [[apt>ufw|ufw]].\\


===== Utilisation =====

<note>L'ordre de déclaration des règles est très important, le système utilisant une politique « premier arrivé, premier servi ». Prenez donc soin d'ajouter vos règles spécifiques avant les règles générales lorsqu'elles concernent des éléments communs.</note>

==== Activer / Désactiver UFW ====

L'outil UFW n'est pas activé par défaut, il vous faut donc avoir les [[:sudo|droits administrateur]] en [[:console|ligne de commande]]. 

Vérifier le statut actuel :

  sudo ufw status

État : actif ou inactif

Activer UFW :

  sudo ufw enable

Désactiver UFW : 

  sudo ufw disable

==== Afficher l'état actuel des règles ====

Une unique commande qui vous permettra de jeter un œil sur la totalité des instructions que vous avez indiqué à UFW : 

  sudo ufw status verbose

Cette commande devrait vous afficher quelque chose comme ça : 

<code>
État : actif
Journalisation : on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
Nouveaux profils : skip

Vers                       Action      De
----                       ------      --
80                         DENY IN     Anywhere
443                        ALLOW IN    Anywhere
22                         ALLOW IN    Anywhere
192.168.0.2 995            ALLOW IN    Anywhere
8082/tcp                   DENY IN     10.0.0.0/8
25/tcp                     ALLOW IN    192.168.0.0/24
80 (v6)                    DENY IN     Anywhere (v6)
443 (v6)                   ALLOW IN    Anywhere (v6)
22 (v6)                    ALLOW IN    Anywhere (v6)

23/tcp                     DENY OUT    Anywhere
23/tcp (v6)                DENY OUT    Anywhere (v6)
</code>

L'argument ''verbose'' est optionnel, cependant il est vivement recommandé car il permet d'afficher la direction du trafic dans les règles (IN : entrant, OUT : sortant)

=== Description du contenu ===

  Journalisation : on (low)

Indique que la journalisation est activé, vous pouvez retrouver toutes les interactions du pare-feu dans le fichier **/var/log/ufw.log** . Vous pouvez activer ou désactiver cette journalisation, voir [[#Activer/désactiver la journalisation|ici]].

  Default: deny (incoming), allow (outgoing), disabled (routed)

Concerne les règles par défaut de UFW, voir la rubrique [[#gestion_des_regles_par_defaut|gestion des règles par défaut]] pour son paramétrage.

<code>Vers                       Action      De
----                       ------      --
80                         DENY IN     Anywhere
443                        ALLOW IN    Anywhere
[...]
23/tcp (v6)                DENY OUT    Anywhere (v6)</code>

Liste toutes les règles que vous avez indiqué au pare-feu. (V6) correspond aux règles adaptées pour l'IPv6, celle qui n'ont pas cette précision sont adaptées pour l'IPv5. Pour l’édition de ces règles, voir la rubrique concernant [[#Ajouter/supprimer des règles|l’édition des règles]].

=== Numéro de règle ===

Vous pouvez afficher les règles numérotées.
  sudo ufw status numbered

==== Gestion des règles par défaut ====

Lorsque UFW est activé, par défaut le trafic entrant est refusé et le trafic sortant est autorisé. C'est en général le réglage à privilégier, cependant vous pouvez tout de même modifier ces règles.

Autoriser le trafic entrant suivant les règles par défaut :

  sudo ufw default allow

Refuser le trafic entrant suivant les règles par défaut :

  sudo ufw default deny

Autoriser le trafic sortant suivant les règles par défaut :

  sudo ufw default allow outgoing

Refuser le trafic sortant suivant les règles par défaut :

  sudo ufw default deny outgoing

==== Les commandes de base ====

=== Activer/désactiver la journalisation ===

Activer la journalisation : 

  sudo ufw logging on

Désactiver la journalisation : 

  sudo ufw logging off

=== Ajouter/supprimer des règles ===

Autoriser une connexion entrante :

  sudo ufw allow [règle]

Refuser une connexion entrante :

  sudo ufw deny [règle]
  
Refuser une connexion entrante, uniquement en TCP :

  sudo ufw deny [port]/tcp

Refuser une connexion sortante :

  sudo ufw deny out [règle]

Supprimer une règle : 

  sudo ufw delete allow "ou deny" [règle]

Supprimer simplement une règle d'après son [[#numéro_de_regle|numéro]] :

  sudo ufw delete [numéro]

  *[port] est à remplacer par le numéro du port désiré.
  *[règle] est à remplacer par le numéro du port ou le nom du [[#Utilisation des services|service]] désiré.
  *[numéro] est à remplacer par le numéro de la règle désiré.

==== Règles simples ====

=== La syntaxe des règles ===

Voici quelques exemples pour comprendre la syntaxe des règles de configuration. 

  * Ouverture du port 53 en TCP et UDP :<code>sudo ufw allow 53</code>
  * Ouverture du port 25 en TCP uniquement :<code>sudo ufw allow 25/tcp</code>

=== Utilisation des services ===

UFW regarde dans sa liste de services connus pour appliquer les règles standards associées à ces services (apache2, smtp, imaps, etc..). Ces règles sont automatiquement convertis en ports.

Pour avoir la liste des services : 
<code>less /etc/services</code>
Exemple : Autoriser le service SMTP : 
<code>sudo ufw allow smtp</code>

2° exemple : Autoriser le port de Gnome-Dictionary (2628/tcp) :
<code>sudo ufw allow out 2628/tcp</code>

3° exemple : Autoriser le protocole pop3 sécurisé
(réception du courrier de Gmail et autres messageries utilisant ce protocole sécurisé) :
<code>sudo ufw allow out pop3s</code>

==== Utilisation avancée ====

=== Règles complexes ===

L'écriture de règles plus complexes est également possible : 

  * Refuser le protocole (//proto//) TCP à (//to//) tout le monde (//any//) sur le port (//port//) 80 : <code>sudo ufw deny proto tcp to any port 80</code>
  * Refuser à (//to//) l'adresse 192.168.0.1 de recevoir sur le port (//port//) 25 les données provenant (//from//) du [[wpfr>Sous-réseau#Réseaux_privés|réseau de classe A]] et utilisant le protocole (//proto//) TCP : <code>sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25</code>
  * Refuser les données utilisant le protocole (//proto//) UDP provenant (//from//) de 1.2.3.4  sur le port (//port//) 514 : <code>sudo ufw deny proto udp from 1.2.3.4 to any port 514</code>
  * Refuser à l'adresse 192.168.0.5 de recevoir toutes données provenant du serveur web de la machine hébergeant le pare-feu : <code>sudo ufw deny out from 192.168.0.5 to any port 80</code>

=== Insérer une règle ===

Vous pouvez insérer une règle à une position précise en utilisant le [[#numéro_de_regle|numéro]]
<code>sudo ufw insert NUM RULE</code>
  * Insérer en numéro 2 une règle refusant le traffic entrant utilisant le protocole (//proto//) UDP (//to//) en direction de (//any//) toute les adresses en écoutes sur votre machine sur le port (//port//) 514 en provenance (//from//) de 1.2.3.4
<code>sudo ufw insert 2 deny proto udp to any port 514 from 1.2.3.4</code>
  
===== Configuration =====

==== IPv6 ====

UFW prend en charge les adresses IPv6.
Le support d'IPv6 est désormais activé par défaut, si ce n'est pas le cas, 
il suffit de [[:tutoriel:comment_editer_un_fichier|modifier le fichier]] **/etc/default/ufw** et d'y mettre ceci : 

<file bash /etc/default/ufw>IPV6=yes</file>

Il ne reste plus qu'à relancer UFW : 

  sudo ufw reload

<note>
Si le support d'IPv6 n'était pas activé, il vous faudra sûrement alors supprimer puis recréer vos règles.
</note>

==== Ne pas autoriser le ping ====

Par défaut UFW autorise les requêtes de ping (ICMP Echo Requests). 
Il faut [[:tutoriel:comment_editer_un_fichier|éditer]] ''/etc/ufw/before.rules'' et commenter en ajoutant un "**#**" à la ligne suivante : 
<code># -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT</code>

==== Bloquer HADOPI ====

Bloquer toutes les IP de la HADOPI :

    sudo ufw deny from 90.80.155.240/28
    sudo ufw deny from 80.12.48.0/24
    sudo ufw deny from 5.23.42.12/30
    sudo ufw deny from 195.5.217.72/29
    sudo ufw deny from 81.80.36.231
    sudo ufw deny from 81.80.36.232
    sudo ufw deny from 81.80.36.233
    sudo ufw deny from 81.80.36.234
    sudo ufw deny from 194.79.189.240/29

===== Problèmes connus =====

Si vous obtenez **"ERROR: / is world writable!"** en voulant activer Uncomplicated Firewall, ces commandes devraient régler le problème : 

  sudo chown root:root /
  sudo chmod 755 /

===== Voir aussi =====

  * (en) [[https://wiki.ubuntu.com/UncomplicatedFirewall|UncomplicatedFirewall]] sur le wiki ubuntu anglophone
  * ( fr ) [[http://leshirondellesdunet.com/pages/parefeu.php|un tutoriel pour apprendre à configurer ufw]]
  * (en) [[http://kde-apps.org/content/show.php?content=137789|une interface graphique pour configurer ufw sous kde dans le panneaux de configuration]]
----

//Contributeurs : [[:utilisateurs:yoboy|YoBoY]], [[:utilisateurs:axel55|Axelos]].//